class Student:
    # 类属性：定义在类中，方法外的变量
    school = '五道口一中'

    # 初始化方法
    def __init__(self, xm, age):  # name,age是方法的参数，是局部变量
        self.name = xm  # 左侧self.name是实例属性,可以在整个类中使用，xm是局部变量
        self.age = age  # 实例的名称和局部变量的名称可以相同

    # 定义在类中的函数，称为方法，会自带一个参数self
    def login(self):
        print(f'我叫{self.name},我今年{self.age}岁了')


# 创建2个Student类型的对象
stu = Student('小红', 15)
stu2 = Student('jack', 18)

print(stu.name, stu.age, stu.school)
print(stu2.name, stu2.age)

# 为stu2动态绑定一个实例属性
stu2.gender = '男'
print(stu2.name, stu2.age, stu2.gender)


# 动态绑定方法
def show():
    print('一个普通函数')


stu2.fun = show  # 函数的赋值，将show函数动态绑定成了stu2对象的方法
# 调用
stu2.fun()
